package com.atguigu.web.admin.interceptors;

import com.atguigu.common.exception.LeaseException;
import com.atguigu.common.result.ResultCodeEnum;
import com.atguigu.common.utils.JwtUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;

public class LoginInterceptor implements HandlerInterceptor {
//    我们需要给前端发来的每个登录token验证其合法性，有误的将被拦截

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        这里只需要前置拦截即可
//        1.获取前端请求传来的token
        String token = request.getHeader("access_token");
        if (token == null){
            throw new LeaseException(ResultCodeEnum.ADMIN_LOGIN_AUTH);
        }else {
//      将 Token 字符串解析成一个 Claims 对象，不会验证 Token 的签名、过期时间等信息
//      （交给下一个接口去验证）
            JwtUtil.parseToken(token);
        }
        return true;
    }
}
